package biz.datalk.industrialland.common.json.annotation;

import java.lang.annotation.*;

/**
 * Jaskson 序列化时 指定对象中需要包含或过滤的字段
 *
 *
 * json 返回值注解
 * 在 controller 方法上使用
 *
 * @author tarofang@163.com
 * @date 2019-08-19
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Repeatable(Jsons.class) // 定义为可重复注解
public @interface Json {

    /** 需要包含或过滤字段的对象 */
    Class<?> type();

    /**
     * <pre>
     *  Jaskson 序列化成JSON时，只包含的指定字段， 使用英文逗号链接
     *
     *  {@code @Json(type = SysUser.class, include="id,username,sex")}
     * </pre>
     */
    String include() default "";

    /**
     * <pre>
     * Jaskson 序列化成JSON是，过滤的字段(不包含这些字段)， 使用英文逗号链接
     *
     * {@code @Json(type = SysUser.class, filter = "password,salt,createTime,updateTime")}
     * </pre>
     */
    String filter() default "";
}
